 

 

//直接入侵Button
//@ts-ignore
cc.Button.prototype._onTouchEnded = function (t) {
    //Tools.playEffect("source/button",false);
　　if (this.interactable && this.enabledInHierarchy) {
　　　　if (this._pressed) {
　　　　　　cc.Component.EventHandler.emitEvents(this.clickEvents, t);
　　　　　　this.node.emit("click", this);
　　　　}
　　　　this._pressed = !1;
　　　　this._updateState();
　　　　t.stopPropagation();
　　}
};



/**
 * 方便子节点查找
 * @path 路径
 * @com  组件
 */
 cc.Node.prototype.find = function(path:string,com:any):any{
    if(com){
        return cc.find(path,this).getComponent(com);
    }
    return cc.find(path,this);
 };

 
/**
 * 方便子节点查找
 * @path 路径
 * @com  组件
 */
 cc.Node.prototype.findEx = function(path:string,com:any):any{
    if(com){
        return cc.find(path,this).getComponent(com);
    }
    return cc.find(path,this);
 };


 
/**
 * 方便子节点查找
 * @path 路径
 * @com  组件
 */
 cc.Node.prototype.hide = function(path:string,isActive:boolean = false):any{
    let  node = cc.find(path,this)
    if(node){
        node.active = isActive;
    }
 };
  


/**
 * 方便子节点查找
 * @path 路径
 * @com  组件
 */
 cc.Node.prototype.setText = function(path:string,text:any):any{
    if(text){
        let node = this.find(path);
        if(node){
            cc.setLabelText(node,text)
        }
    }
 };

/**
 * 设置文本
 */
cc.setLabelText = function(node:cc.Node,text:any){ 
    if(!node || node.isValid == false) {
        return console.error("node is null");
    }  
    if(text || typeof(text) == "number"){
        if(node.hasComponent(cc.Label)){
             node.getComponent(cc.Label).string = text;
        }else if(node.hasComponent(cc.Button)){
            node.getComponent(cc.Button).getComponent(cc.Label).string= text;
        }else if( node.hasComponent(cc.ProgressBar)){ 
            node.getComponent(cc.ProgressBar).progress = text;
        }
    } 
}
 
/**
 * 节点上是否存在某些组件
 */
cc.Node.prototype.hasComponent = function (types) {
    if (!Array.isArray(types)) {
        types = [types];
    }
    let component = types.find(type => this.getComponent(type));
    return !!component;
};

/**
 * 加载spriteFrame
 */
cc.Node.prototype.loadSpirte = function(spritePath:string,path:string) {
    let sp:cc.Sprite = this.find(spritePath,cc.Sprite);
    if(!sp){
        console.error("not find spritePath",spritePath);
        return
    }
    if(!path){
        sp.spriteFrame = null;
        return;
    }
    cc.resources.load(path,cc.SpriteFrame,(err,spr:cc.SpriteFrame)=>{
        if(err){
            sp.spriteFrame = null;
            console.error(`loadSpirte err:${path}`,err);
            return
        }
        if(sp.spriteFrame &&sp.spriteFrame == spr) return ;
        if(cc.isValid(sp.node))
            sp.spriteFrame = spr;
    });
}

/**
 * 加载spriteFrame
 */
 cc.Node.prototype.loadSpirteEx = function(path:string) { 
    let sp:cc.Sprite = this.getComponent(cc.Sprite); 
    if(!path || path == "") {
        if(sp) sp.spriteFrame = null;
        return;
    };
    cc.resources.load(path,cc.SpriteFrame,(err,spr:cc.SpriteFrame)=>{
        if(err){
            sp.spriteFrame = null;
            console.error(`loadSpirte err:${path}`,err);
            return;
        } 
        //if(sp.spriteFrame &&sp.spriteFrame == spr) return ;
        if(cc.isValid(sp.node))
            sp.spriteFrame = spr;
    });
}


/**
 * 加载spriteFrame null
 */
 cc.Node.prototype.setNullSpriteFrame= function() { 
    let sp:cc.Sprite = this.getComponent(cc.Sprite); 
    if(sp){
        sp.spriteFrame = null
    }
}